{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 用scikit-learn学习主成分分析(PCA)"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "\n",
    "from sklearn.datasets import make_blobs"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "source": [
    "# X为样本特征，y为样本类别，共1000个样本，每个样本3个特征，共4个类别\n",
    "X, y = make_blobs(n_samples=10000, n_features=3, centers=[[3,3,3], [0,0,0], [1,1,1], [2,2,2]], cluster_std=[0.2, 0.1, 0.2, 0.2], random_state =9)\n",
    "fig = plt.figure()\n",
    "ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)\n",
    "fig.add_axes(ax) \n",
    "plt.scatter(X[:, 0], X[:, 1], X[:, 2],marker='o')"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/Users/guchen/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:5: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  \"\"\"\n",
      "/Users/guchen/anaconda3/lib/python3.6/site-packages/matplotlib/collections.py:857: RuntimeWarning: invalid value encountered in sqrt\n",
      "  scale = np.sqrt(self._sizes) * dpi / 72.0 * self._factor\n"
     ]
    },
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x7ff4855dd470>"
      ]
     },
     "metadata": {},
     "execution_count": 2
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "## n_components\n",
    "指定希望PCA降维后的特征维度数目:\n",
    "- 最常用的做法是直接指定降维到的维度数目，此时n_components是一个大于等于1的整数。\n",
    "- 也可指定主成分的方差和所占的最小比例阈值，让PCA类自己去根据样本特征方差来决定降维到的维度数，此时n_components的值在（0，1]之间"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "source": [
    "from sklearn.decomposition import PCA\n",
    "pca = PCA(n_components=3)\n",
    "pca.fit(X)\n",
    "print (pca.explained_variance_ratio_)\n",
    "print (pca.explained_variance_)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[0.98318212 0.00850037 0.00831751]\n",
      "[3.78521638 0.03272613 0.03202212]\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "source": [
    "pca = PCA(n_components=2)\n",
    "pca.fit(X)\n",
    "print (pca.explained_variance_ratio_)\n",
    "print (pca.explained_variance_)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[0.98318212 0.00850037]\n",
      "[3.78521638 0.03272613]\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "source": [
    "X_new = pca.transform(X)\n",
    "plt.scatter(X_new[:, 0], X_new[:, 1],marker='o')\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "现在看看不直接指定降维的维度，而指定降维后的主成分方差和比例。"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "source": [
    "pca = PCA(n_components=0.95)\n",
    "pca.fit(X)\n",
    "print (pca.explained_variance_ratio_)\n",
    "print (pca.explained_variance_)\n",
    "print (pca.n_components_)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[0.98318212]\n",
      "[3.78521638]\n",
      "1\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "source": [
    "pca = PCA(n_components=0.99)\n",
    "pca.fit(X)\n",
    "print (pca.explained_variance_ratio_)\n",
    "print (pca.explained_variance_)\n",
    "print (pca.n_components_)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[0.98318212 0.00850037]\n",
      "[3.78521638 0.03272613]\n",
      "2\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "source": [
    "pca = PCA(n_components='mle', svd_solver='full')\n",
    "pca.fit(X)\n",
    "print (pca.explained_variance_ratio_)\n",
    "print (pca.explained_variance_)\n",
    "print (pca.n_components_)"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[0.98318212]\n",
      "[3.78521638]\n",
      "1\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.6.8 64-bit ('base': conda)"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "interpreter": {
   "hash": "1fef96a86254b5b64b7294805a674893d583399788ea545149c5bfbe00efcc65"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}